using System;

namespace MFGps.Devices
{
    public class SirfStarIII : NmeaGps
    {
        public SirfStarIII()
        {
            // This is the default baud rate for my Locosys MediaTek GPS units - MarkH.
            BaudRate = 9600;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="comPort">Specify the com port that should be used.</param>
        public SirfStarIII(string comPort, int baudRate)
        {
            ComPort = comPort;
            BaudRate = baudRate;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="ComPort">Specify the com port that should be used.</param>
        /// <param name="EnableEventUpdate">If true, instructs the device to raise the PositionChanged event when an updated location becomes avaliable</param>
        public SirfStarIII(string comPort, int baudRate, bool enableEventUpdate)
        {
            ComPort = comPort;
            BaudRate = baudRate;
            PositionUpdateEnabled = enableEventUpdate;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="ComPort">Specify the com port that should be used.</param>
        /// <param name="EnableEventUpdate">If true, instructs the device to raise the PositionChanged event when an updated location becomes avaliable</param>
        /// <param name="initilizeTime">DateTime to initilize the GPS device with. This allows for faster Position lock</param>
        public SirfStarIII(string comPort, int baudRate, bool enableEventUpdate, DateTime initilizeTime)
        {
            ComPort = comPort;
            BaudRate = baudRate;
            PositionUpdateEnabled = enableEventUpdate;
            LocalTime = initilizeTime;
        }

        public override void ChangeBaudRate(int newBaud)
        {
            throw new NotImplementedException();
        }

        public override void ChangeUpdateRate(int newRate)
        {
            throw new NotImplementedException();
        }

        internal override void CollectRangeErrorStatisticsChanged()
        {
            throw new NotImplementedException();
        }

        internal override void DeadReckoningValueChanged()
        {
            throw new NotImplementedException();
        }
    }
}
